function fun(n, o) {// n=3 o=1
    console.log(o)
    return {
        fun: function (m) {// 3
            return fun(m, n);// fun(3,1)
        }
    }
}
// var a = fun(0)// undefined   闭包： n=0 o=undefined
// a.fun(1);// 0  // 闭包  n=1 o=0
// a.fun(2);// 0
// a.fun(3) // 0   undefined,?,?,?


// fun(0);// undefined   闭包：n==>0
// fun(0).fun(1);// 0    闭包：n==>1
// fun(0).fun(1).fun(2)// 1  闭包：n===>2
// fun(0).fun(1).fun(2).fun(3)// 2  闭包：n===>3
// var b = fun(0).fun(1).fun(2).fun(3);// undefined 0 1 2

var c = fun(0).fun(1);// undefined 0  闭包：n==>1
c.fun(2);// 1
c.fun(3);// 1
